//
//  YCPhotoBrowser.swift
//  YCPhotoBrowser
//
//  Created by Billy on 2024/4/15.
//

import UIKit
import Foundation
import Photos

let version = "1.0.0"

public struct YCPhotoBrowserWrapper<Base> {
    public let base: Base
    
    public init(_ base: Base) {
        self.base = base
    }
}

public protocol YCPhotoBrowserCompatible: AnyObject {}

public protocol YCPhotoBrowserCompatibleValue {}

extension YCPhotoBrowserCompatible {
    public var yc: YCPhotoBrowserWrapper<Self> {
        get { YCPhotoBrowserWrapper(self) }
        set {}
    }
    
    public static var yc: YCPhotoBrowserWrapper<Self>.Type {
        get { YCPhotoBrowserWrapper<Self>.self}
        set {}
    }
}

extension YCPhotoBrowserCompatibleValue {
    public var yc: YCPhotoBrowserWrapper<Self> {
        get { YCPhotoBrowserWrapper(self) }
        set {}
    }
}

extension UIViewController: YCPhotoBrowserCompatible {}
extension UIColor: YCPhotoBrowserCompatible {}
extension UIImage: YCPhotoBrowserCompatible {}
extension CIImage: YCPhotoBrowserCompatible {}
extension PHAsset: YCPhotoBrowserCompatible {}
extension UIFont: YCPhotoBrowserCompatible {}
extension UIView: YCPhotoBrowserCompatible {}
extension UIGraphicsImageRenderer: YCPhotoBrowserCompatible {}

extension Array: YCPhotoBrowserCompatibleValue {}
extension String: YCPhotoBrowserCompatibleValue {}
extension CGFloat: YCPhotoBrowserCompatibleValue {}
extension Bool: YCPhotoBrowserCompatibleValue {}
